// pages/walk/walk.js

const DB = wx.cloud.database();
//行走数据库
const walkdb = DB.collection("CarWalk");

// 定时器变量 为了保证界面数据能够正常显示
var timerId = ""

Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 行走数据绑定变量
    WALK : [],
    // 行走总公里数据绑定变量
    COUNT : ""

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getWalkData()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   * 0.8s后对数据进行渲染 避免程序运行快导致界面数据渲染无效
   */
  onShow: function () {
    let that = this
    // 定时器函数写法 setTimeout(function() {你要执行的函数}
    // 定时器存在缺点 要是退出该页不关闭定时器 再次进入该页 定时器会混乱 无法正常使用 解决方式在下看
    timerId = setTimeout(function() {
      // 调用自定义数据库函数
      that.getWalkData()
   }, 800);
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    clearTimeout(timerId)

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    this.getWalkData()
    wx.stopPullDownRefresh()

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  // 界面数据跳转
  jumprunning:function(e){
    //携带参数
    let walk = e.currentTarget.dataset.walk
    console.log(walk)
    wx.navigateTo({
      url: '/pages/Running/Running?mode='+ walk,
    })
  },
  // 界面渲染
  // 渲染前端页面
  getWalkData(){
    let _this = this
    // 交互设置 页面加载
    wx.showLoading({
      title: '加载中',
    })
    // .get获取数据库全部数据
    walkdb.get({
      success:res => {
        // 加载结束就隐藏
        // console.log(res)
        wx.hideLoading()
        // 获取Walk数据库全部数据 通过WALK变量将数据发往wxml渲染
        _this.setData({
          WALK:res.data
        })
      }
    })
    // 定义公里变量 通过_this去获取data里面的WALK数据
    let meters = _this.data.WALK
    let countmeter= 0.0;
    console.log(meters)
    // 不断累加 meters字段的数据来计算累计距离
    for(let i = 0;i<meters.length; i++){
      console.log("meters",meters[i]["meters"])
      countmeter += parseFloat(meters[i]["meters"])
    }
    console.log(countmeter)
    // 将获取到的累加数据 countmeter 发往wxml进行数据渲染
    _this.setData({
      COUNT : countmeter
    })
  },
  // 点击触发删除方法
  del:function(e){
    let _this = this
    // 获取点击的id
    let walkid = e.currentTarget.dataset.walkid
    // 显示模态对话框
    wx.showModal({
      title: '提示',
      content: '您确定要删除吗？',
      success (res) {
        if (res.confirm) {
          // 暂时只能删除一个
          // 数据库删除数据 .doc(id值).remove
          walkdb.doc(walkid).remove({
            success(res){
              // 当前页面刷新 刷新页面
              wx.showToast({
                title: '删除成功',
              })
              // 清楚页面残留数据
              _this.setData({
                isCheckedAll : false,
                totalPrice : 0
              })
              // 删除结束后立马刷新界面
              _this.getWalkData()
              
            },
            fail(res){
              wx.showToast({
                title: '删除失败',
              })
            }
          })
        } 
        else if (res.cancel) {
          // console.log('用户点击取消')
        }
      }
    })

  }
})